#ifndef CPUID
#define CPUID

#include "processor.h"

namespace sleek
{
    namespace core
    {
        namespace os
        {
            class cpuid
            {
                public:
                    cpuid();
                    ~cpuid();

                    void detectVirtualProcessor();
                    u32  getVirtualNumberProcessor();
                    processor getVirtualProcessor(u32);
                    void updateVirtualProcessorInfo(u32);

                    stringc createCacheDescription(PROCESSOR_CACHE_TYPE,u32);
                    void printQuickDescription();

                protected:
                    math::array<processor> proc;
                private:
            };
        }
    }
}

#endif
